package com.dms.system.service;

import java.util.List;

import com.dms.system.domain.SysTodayMission;
import com.dms.system.domain.dto.SysTodayMissionDTO;

/**
 * 每日任务Service接口
 * 
 * @author xlong_zhu
 * @date 2021-04-05
 */
public interface ISysTodayMissionService 
{
    /**
     * 查询每日任务
     * 
     * @param todayMissionId 每日任务ID
     * @return 每日任务
     */
    public SysTodayMission selectSysTodayMissionById(Long todayMissionId);

    /**
     * 查询每日任务列表
     * 
     * @param sysTodayMission 每日任务
     * @return 每日任务集合
     */
    public List<SysTodayMissionDTO> selectSysTodayMissionList(SysTodayMissionDTO sysTodayMission);

    /**
     * 查询某个员工的今日任务
     * @param sysTodayMission
     * @param userId
     * @return 该员工每日任务集合
     * @author xlong_zhu
     * @date 2021/4/13
     */
    public List<SysTodayMissionDTO> selectSysTodayMissionList(SysTodayMissionDTO sysTodayMission,Long userId);

    /**
     * 新增每日任务
     * 
     * @param sysTodayMission 每日任务
     * @return 结果
     */
    public int insertSysTodayMission(SysTodayMission sysTodayMission);

    /**
     * 根据传入的任务列表，生成每日任务列表，然后批量插入到每日任务表中
     * 每天定时执行一次，生成今日任务
     * @return 执行批量插入操作影响行数
     * @author xlong_zhu
     * @date 2021/4/5
     */
    public abstract int batchInsertSysTodayMission();

    /**
     * 修改每日任务
     * 
     * @param sysTodayMission 每日任务
     * @return 结果
     */
    public int updateSysTodayMission(SysTodayMission sysTodayMission);

    /**
     * 批量删除每日任务
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysTodayMissionByIds(String ids);

    /**
     * 删除每日任务信息
     * 
     * @param todayMissionId 每日任务ID
     * @return 结果
     */
    public int deleteSysTodayMissionById(Long todayMissionId);
}
